package com.yunxin.core.application.command.order;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author zero°
 * @since 2023-06-02
 */
@Data
@Schema(description = "创建用户采集单对象")
public class CreateUserApplyOrderCommand implements Serializable {

    /**
     * 用户code
     */
    @Schema(hidden = true)
    private String userCode;
    /**
     * 访问者id
     */
    @Schema(hidden = true)
    private String visitorId;
    /**
     * 渠道推广code
     */
    @Schema(description = "渠道推广code")
    @NotBlank(message = "渠道推广code不能为空")
    private String channelPromotionCode;
    /**
     * 产品id
     */
    @Schema(description = "产品id")
    private Long productId;
    /**
     * 用户姓名
     */
    @Schema(description = "用户姓名")
    @NotBlank(message = "用户姓名不能为空")
    private String userName;
    /**
     * 用户身份证号
     */
    @Schema(description = "用户身份证号")
    private String userIdentityNo;
    /**
     * 工作城市
     */
    @Schema(description = "工作城市")
    @NotBlank(message = "工作城市不能为空")
    private String workCity;
    /**
     * 文化程度 1.初中及以下 2.高中 3.中专 4.大专 5.本科 6.硕士 7.博士
     */
    @Schema(description = "文化程度 1.初中及以下 2.高中 3.中专 4.大专 5.本科 6.硕士 7.博士")
    private Integer educationLevel;
    /**
     * 社保情况 1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无社保
     */
    @Schema(description = "社保情况 1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无社保")
    private Integer socialSecurityLevel;
    /**
     * 公积金情况 1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无公积金
     */
    @Schema(description = "公积金情况 1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无公积金")
    private Integer accumulationFundLevel;
    /**
     * 信用卡 1.有信用卡 2.无信用卡
     */
    @Schema(description = "信用卡 1.有信用卡 2.无信用卡")
    private Integer creditCard;
    /**
     * 微粒贷额度  1.额度500及以上 2.额度1000及以上 3.额度3000及以上 4.额度5000及以上 5.额度10000及以上
     */
    @Schema(description = "微粒贷额度  1.额度500及以上 2.额度1000及以上 3.额度3000及以上 4.额度5000及以上 5.额度10000及以上")
    private Integer microLoanQuota;
    /**
     * 芝麻分额度 1.额度550及以上 2.额度600及以上 3.额度650及以上 4.额度700及以上
     */
    @Schema(description = "芝麻分额度 1.额度550及以上 2.额度600及以上 3.额度650及以上 4.额度700及以上")
    private Integer sesameSeedQuota;
    /**
     * 职业 1.民企员工 2.外企员工 3.企业主 4.个体户 5.公务员 6.事业单位员工 7.国企员工 8.自由职业 9.其他
     */
    @Schema(description = "职业 1.民企员工 2.外企员工 3.企业主 4.个体户 5.公务员 6.事业单位员工 7.国企员工 8.自由职业 9.其他")
    private Integer occupation;
    /**
     * 职业月收入 1. 月收入3500以下 2.月收入3500-6000 3.月收入6000-10000 4.月收入10000-20000 5.月收入20000以上
     */
    @Schema(description = "职业月收入 1. 月收入3500以下 2.月收入3500-6000 3.月收入6000-10000 4.月收入10000-20000 5.月收入20000以上")
    private Integer occupationMonthlyIncome;
    /**
     * 房产情况 1.有房可抵押 2.有房不抵押 3.无房产
     */
    @Schema(description = "房产情况 1.有房可抵押 2.有房不抵押 3.无房产")
    private Integer houseLevel;
    /**
     * 车产情况 1.有车可抵押 2.有车不抵押 3.无车产
     */
    @Schema(description = "车产情况 1.有车可抵押 2.有车不抵押 3.无车产")
    private Integer vehicleLevel;
    /**
     * 保险 1.缴纳满一年 2.缴纳未满一年 3.无保单
     */
    @Schema(description = "保险 1.缴纳满一年 2.缴纳未满一年 3.无保单")
    private Integer insure;
    /**
     * 京东白条额度 1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无
     */
    @Schema(description = "京东白条额度 1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无")
    private Integer jdBtQuota;
    /**
     * 蚂蚁花呗额度 1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无
     */
    @Schema(description = "蚂蚁花呗额度 1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无")
    private Integer antCreditPayQuota;
    /**
     * 性别 1.男 2.女
     */
    @Schema(description = "性别 1.男 2.女")
    private Integer sex;
    /**
     * 年龄
     */
    @Schema(description = "年龄")
    private Integer age;
    /**
     * 逾期 1.否 2.是
     */
    @Schema(description = "逾期 1.否 2.是")
    private Integer beOverdue;
    /**
     * 借款金额
     */
    @Schema(description = "借款金额")
    private BigDecimal loanAmount;
    /**
     * 借款期限 1.借款3个月 2.借款6个月 3.借款9个月 4.借款12个月 5.借款24个月
     */
    @Schema(description = "借款期限 1.借款3个月 2.借款6个月 3.借款9个月 4.借款12个月 5.借款24个月")
    private Integer loanPeriod;

}
